package br.com.ro.view;

import br.com.ro.model.dao.StatusExecucaoDao;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import br.com.ro.model.entity.StatusExecucao;
import br.com.ro.util.BeanFactory;
import br.com.ro.util.Utils;

@ManagedBean(name = "statusExecucaoBean")
@ViewScoped
public class StatusExecucaoBean implements Serializable {

	private static final long serialVersionUID = 1L;
	private StatusExecucao statusExecucao = new StatusExecucao();
	private List<StatusExecucao> listaStatusExecucaos = new ArrayList<StatusExecucao>();
	private StatusExecucaoDao statusExecucaoDao = (StatusExecucaoDao) BeanFactory.getBean("statusExecucaoDao", StatusExecucaoDao.class);

	public StatusExecucaoBean() {
		atualizarTela();
	}

	/**
	 * Limpa os campos input e atualiza a lista de usuários cadastrados
	 */
	private void atualizarTela() {
		statusExecucao = new StatusExecucao();
		listaStatusExecucaos = statusExecucaoDao.listAll();
	}

	public void limpar() {
		statusExecucao = new StatusExecucao();
	}

	/**
	 * Grava novo registro ou atualiza um registro
	 */
	public void gravar() {
		Object[] obj = { getStatusExecucao().getDescricao(), "O Status" };
		if (Utils.getValilador().validar(obj))
			return;

		statusExecucaoDao.save(getStatusExecucao());
		atualizarTela();
	}

	/**
	 * Exclui um registro da tabela usuario
	 */
	public void excluir() {
		statusExecucaoDao.delete(getStatusExecucao());
		atualizarTela();
	}

	public StatusExecucao getStatusExecucao() {
		return statusExecucao;
	}

	public void setStatusExecucao(StatusExecucao statusExecucao) {
		this.statusExecucao = statusExecucao;
	}

	public List<StatusExecucao> getListaStatusExecucaos() {
		return listaStatusExecucaos;
	}

	public void setListaStatusExecucaos(List<StatusExecucao> listaStatusExecucaos) {
		this.listaStatusExecucaos = listaStatusExecucaos;
	}

}
